package com.lxm.controller;


import com.lxm.dto.Result;
import com.lxm.dto.TradeDTO;
import com.lxm.service.TradeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 交易表 前端控制器
 * </p>
 *
 * @author ${author}
 * @since 2024-10-02
 */
@RestController
@RequestMapping("/trade")
@Tag(name = "订单管理")
public class TradeController {
    @Resource
    private TradeService tradeService;

    @Operation(summary = "立即下单")
    @PostMapping
    //如果前端传了交易状态参数，以前端为准，不传默认下单未支付
    public Result addTrade(@RequestBody TradeDTO trade) {
        return tradeService.addTrade(trade);
    }
    //TODO:正常应该有一个获知支付情况，进行支付状态修改的接口，但是由于暂时没有接入第三方支付，所以暂时先不写

    @Operation(summary = "订单逻辑删除")
    @PostMapping("/delete")
    //处于订单信息有一定重要性，姑且不支持批量删除
    public Result deleteTrade(Long tradeId) {
        return tradeService.deleteTrade(tradeId);
    }

    @Operation(summary = "分页获取历史订单", description = "这个是返回自己已完成的订单，按购买 时间排序")
    @PostMapping("/historyTradeList")
    public Result historyTradeList(@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum) {
        return tradeService.historyTradeList(pageNum);
    }
    //TODO:查询订单详细状态，目前来说先不写
}

